home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Gold Collection / Software Vault - The Gold Collection (American Databankers) (1993).ISO / cdr25 / mr2_151.zip / MR2.HST < prev    next >
Text File  |  1993-05-09  |  56KB  |  1,130 lines

  1. MR/2 - A QWK Compatible Mail Reader for OS/2.  05/02/93
  2.  
  3. Copyright (c) 1992, Knight Writer Software Company.
  4. All rights reserved.
  5.  
  6. ===================================================================
  7.                           N O T I C E
  8. ===================================================================
  9. This IS a shareware package, and does require a registration fee if
  10. you choose to continue using it after 30 days.   The registration
  11. fee is currently $20 US.  Eventually, the product MAY have a
  12. "begging" screen with a key-file that will register the software
  13. and suppress it.  The more interest I get, the more likely I am to
  14. continue with improvements.
  15. ------------------------------------------------------------------
  16.  
  17. CONTACTING THE AUTHOR
  18. =====================
  19.  
  20. You  can contact me in a number  of ways.  Unfortunately, I can't
  21. provide a phone number at this time.
  22.  
  23. US Mail:       Nick Knight
  24.                1823 David Ave.
  25.                Parma, Ohio 44134
  26.  
  27. Fido netmail:  1:157/2 to "Nick Knight"
  28.  
  29. Internet:      User "Nick Knight", (nick.knight@pcohio.com)
  30.  
  31. Fido Echomail: Find the Fidonet OS2PRODSUPPORT conference.  I'm there.
  32.  
  33.                Echomail messages to  me in more general conferences are
  34.                discouraged,  as keeping them "on  topic" and
  35.                interesting to the  masses would be difficult.   I do
  36.                read OS2, OS2PROG, C_PLUSPLUS and DR DEBUG daily,
  37.                though.   OFFLINE echo also (deals with mail readers),
  38.                this might be THE place to ask public questions, eh?
  39.  
  40.                I recently have acquired access to a host of other
  41.                networks with OS/2 conferences.  These include RIME,
  42.                SmartNet, Uninet, Intelec, Nanonet, Racenet and some
  43.                others I can't remember.
  44.  
  45.  
  46. Direct BBS:    Leave a message on the Nerd's Nook BBS (1:157/2) at (216)
  47.                356-1772, 356-1872 or 356-1431.  I check in here
  48.                multiple times a day.  I will also keep the most recent
  49.                copy of MR/2 posted here.  Other boards (non-local)
  50.                will get updates at my convenience.
  51.  
  52.                Nerd's does support file requests (157/2 or 157/3)
  53.  
  54. Compuserve:    I check in  here only  when I have  to.   Try mail to  my
  55.                user ID  - 76066,1240,  although this isn't the best
  56.                approach.
  57.  
  58.  
  59. Changes included in v1.49x
  60. --------------------------
  61.  
  62. o   Read.me is now shifted around so that most recent changes (from now
  63.     on, at least) list at the top.
  64.  
  65. o   Welcome and Goodbye screen now list on the Bulletins select menu.
  66.     You can view these, unobstructed and at length, any time you choose.
  67.  
  68. o   Minor change to the parsing of the @Fidonet@ variable.  Removed any
  69.     @fidonet suffix that exists in the origin line.
  70.  
  71. o   Ooops.  When using the internal editor, and editing mr2.ini, the
  72.     read clock string would pop onto every edit screen.  The clock display
  73.     is now suspended/resumed correctly.
  74.  
  75. o   Clock would still pop up if you would request HELP while inside the
  76.     editor, then CANCEL to clear the help screen.  Fixed.
  77.  
  78.  
  79. KNOWN BUGS AND STUFF
  80. ====================
  81.  
  82. Mouse support is missing from some of the "inform user" screen.
  83.  
  84. The TEMPORARY directory MUST remain a subdirectory of the MR2 home dir.
  85.  
  86. You can't use "\" or "&" as part of any search text (since MR/2 uses them
  87. as delimiters).
  88.  
  89. You can't cancel a search until the first "hit" is displayed.  This is
  90. particularly irritating when soundex searching, since soundexing is
  91. noticably slower.
  92.  
  93. If you set "SkipReadMessages" to true, you cannot gain access to a
  94. conferences where all messages have previously been read.
  95.  
  96. If you don't like my internal editor.  You'll have to find your
  97. own or use E or EPM.  QEdit for OS/2 works nice as an inexpensive,
  98. character-mode editor/  Also, there's an OS/2 editor TE-something
  99. that I heard was OK.
  100.  
  101. You can't send ADD/DROP conference messages yet.  This seems easy
  102. enough,  so I should be able to add it in soon.
  103.  
  104. Other frills that have not yet been addressed:  Bulk marking, carbon
  105. copies, twit filter, function key assigning. There are probably others.
  106. Feel free to bombard me with requests.
  107.  
  108. No long file name support.  Since QWK is a DOS thing, the only place I can
  109. see using it is for packet names (if the user renames it).  Any ideas?
  110.  
  111.  
  112. Changes included in v1.01
  113. -------------------------
  114.  
  115. o   By request, 43 and 50 line mode are now supported via a new .ini entry.
  116.     You can supply a VideoMode=xx parameter in MR2.INI, where xx can be 25,
  117.     43 or 50. Any other numbers will be ignored.  All Selection lists and
  118.     displays are adjusted to match the screen dimensions.  For those with
  119.     vision better than mine ... :)
  120.  
  121. o   Clicking the mouse on the Subject area while viewing a message still
  122.     simulated hitting the 'T' key.  This key no longer moves forward by
  123.     thread, it steals taglines.  Now, clicking on Subject is translated
  124.     properly to an 'H'.
  125.  
  126. o   When filling a field in a "form" (e.g., the Subject field of the
  127.     Message Header Edit form), overtype-mode would sometimes echo characters
  128.     that weren't there.  This happened after some characters were deleted;
  129.     the "ghost" characters appeared at the end of the string.  This is fixed.
  130.  
  131. o   The automatic splitting of long replies is now controlled via a
  132.     MR2.INI parameter SplitLongReplies (set to Yes or No).  If set to
  133.     yes, MR/2 will split replies up so that no more than 100 lines are
  134.     in each message.  If set to no, then no splitting is performed and
  135.     one large message is create.  The default is to split message.
  136.  
  137. o   Previously, long replies were always split.  The "cut-off" point was
  138.     95 message lines, and a "<cont'd>" line was appended with a blank line.
  139.     I've seen some message processors cut the first part by one lines,
  140.     making the second message consist of 1 or 2 meaningless lines.  I've
  141.     changed the "split at" number to 92 lines.
  142.  
  143. o   And another MR2.INI parameter has been added:  AllUpperCase controls
  144.     how the Subject, From and To lines are treated after editing a message's
  145.     header information.  Previously, all fields were converted to upper case.
  146.     Now, if AllUpperCase=No, the case is left as entered.  (By request...)
  147.  
  148. o   The message header editing form now allows you to "up arrow" into the
  149.     From field and modify it.  NOTE:  many BBS's will reject messages
  150.     whose FROM line do not match the user's logon name.
  151.  
  152.  
  153. Changes included in v1.02
  154. -------------------------
  155.  
  156. o   Bug fix:  User reported a problem with conference numbers showing
  157.     incorrectly.  Turns out that some packets have a single byte
  158.     conference field in the header, and the other byte used by newer mail
  159.     doors was set to a space (hex 20).  This caused conference numbers to
  160.     be report as 8192 more than their actual value.
  161.  
  162.  
  163. Changes included in v1.03
  164. -------------------------
  165.  
  166. o   Fixes to tagline logic.  If tagline file was non-existant, MR/2 would
  167.     crash.  If file was empty, added tags would not show up until you
  168.     exited and reentered.
  169.  
  170. o   Selection list problems fixed.  Highlighting of the line above displayed
  171.     list on occasion.  Selection bar will no longer move into unfilled
  172.     areas.  Scrolling up and down through list no longer displays end-of-list
  173.     "ghost" entries.
  174.  
  175. o   Added some tests for over-length taglines.  Previously, a tagline
  176.     longer than 120 character would lock the session.
  177.  
  178. o   Forms display routine would show an over-length tagline w/o truncating
  179.     it.  Display of tagline extended to column 80, then would wrap to the
  180.     next line.  This has been corrected.
  181.  
  182. o   Actually added in 1.01 is the ability, from the packet selection screen,
  183.     to toggle video modes.  The "V" key will toggle from displayed lines
  184.     from 25 to 43, from 43 to 50, and then from 50 back to 25.
  185.  
  186. o   MR/2 would lock up when saving a reply (or a new message).  This
  187.     happened only with BBS doors that would pad the user name (in control.dat)
  188.     with spaces.  The lockup occured after pressing F10 to accept the
  189.     message header information.  This shouldn't happen any more :)
  190.  
  191. o   NOTE - NOTE - NOTE:  The problem with packets proclaiming "no mail to
  192.     read" seems to be related to missing .NDX files in the packet.  The
  193.     QMAIL door in particular lets you suppress these files, and some
  194.     mail readers (SLMR/OLX) don't use them, anyway.  MR/2 requires these
  195.     file, at least today.  I WILL provide an index building function in the
  196.     very next release, figure by 5/22 worst-case.
  197.  
  198. o   OK, so I added the routine to create NDX files if they aren't there.
  199.     (See above) Testing on this was minimal, so please report any problems.
  200.     Packets without .NDX files should no longer report "no mail found".
  201.  
  202.  
  203. Changes included in v1.04
  204. -------------------------
  205.  
  206. o   You may now create a supplemental "INI" file for any/all BBS's that
  207.     you get mail from.  MR/2 still loads its options from MR2.INI, but you
  208.     may now change some of these options automatically by BBS, when a packet
  209.     is opened.  Once the packet is unpacked and the BBS "ID" is extracted,
  210.     MR/2 checks its "base" directory (where MR2.INI resides) for a file
  211.     named after the BBS, with a ".INI" suffix.  For example, after
  212.     unpacking a QWK packet from PC-OHIO, MR/2 will load options from a file
  213.     named "PC-OHIO.INI", if one exists.  Obviously, some options will have
  214.     no effect (e.g., PacketPath has already been used and is no longer
  215.     pertainent, as is WorkPath), but things like tagline files and quoting
  216.     styles can be changed on a BBS basis.
  217.  
  218.     If a "BBS" .INI file is accessed, MR/2 will reload the global MR2.INI
  219.     file when the current packet is closed.
  220.  
  221. o   New INI parameter "TagStyle" has been added.  You may specify either
  222.     FIDONET (the default) or PCBOARD.  If Fidonet is specified, taglines
  223.     will use "*" characters to delimit MR/2's signiture.  If PCBOARD
  224.     style is requested, the "block" character used by SLMR/OLX will be
  225.     substituted.
  226.  
  227. o   Read-ahead by thread (the "H" key) has been enhanced to recognize
  228.     subjects prefixed with "RE:" or "RE: " as matching.  Messages will
  229.     also match if the subject matches the original *less* the "RE:".
  230.  
  231. o   Install now includes Register.Doc for easier user registration.
  232.  
  233.  
  234. -   That's it for this revision.  I *almost* added a large section of code
  235.     for twits and canned searches, but this is going to take some time to
  236.     code and even more time to test and debug.  I'll make that available in
  237.     a week or two, along with fixes for any other reported bugs.
  238.  
  239.     BTW - a PM version is in a very primitive form, anyone interested in
  240.     giving me some useful feedback?  First, should it be MR/2 PM or MR/PM?
  241.  
  242.  
  243. Changes included in v1.1
  244. -------------------------
  245.  
  246. o   The Reference number field was not being set and maintained properly.
  247.     If you replied to a message, that message's reference number would
  248.     get copied into the replies Ref#.  Then if you would re-edit the reply
  249.     later, the Ref# would be set to the conference number.  I've now
  250.     staightened this mess out and it seems to work properly.
  251.  
  252. o   Added a new MR2.INI parameter "WrapLinesAtColumn" that defaults to 80.
  253.     This should ease the problems with users that depend on the system "E"
  254.     editor and its "word wrapping" function.  MR/2 will let no line extend
  255.     beyond the value supplied here, and will insert a CR/LF between words
  256.     to keep text in bounds.
  257.  
  258. o   You may now set the MR2.INI variable "VideoMode" any of the values
  259.     25, 28, 34, 40, 43, 50 or 60 to represent the number of lines to
  260.     display.  Also, the V toggle while on the packet select screen has
  261.     been enhanced to toggle through all of these values.
  262.  
  263. o   MR/2 now accepts one or more file names identifying .QWK packet as
  264.     command line parameters.  For example, typing:
  265.  
  266.         MR2 E:\DL\NERDNOOK.QWK
  267.  
  268.     will invoke MR/2 and automatically select the named packet for reading.
  269.     More than one packet may be specified, MR/2 simply opens the "next"
  270.     packet when the previous packet is closed.
  271.  
  272.     When all packets on the command line have been read, MR/2 returns to
  273.     the packet selection screen and waits for a new selection.  If you wish
  274.     to have MR/2 exit after all specified files have been processed, set the
  275.     INI variable "ExitAtEndOfParameters" to YES.
  276.  
  277.     This also allows for an "association" to be set up using WPS settings.
  278.     If a new ICON is created to invoke MR/2 and "*.qwk" is set as an
  279.     association, then clicking on a QWK packet inside the file manager is
  280.     all that's necessary to read a packet.
  281.  
  282. o   Cosmetic:  "Pick a Conferences" when writing a "new" message now
  283.     reads correctly.
  284.  
  285. o   Cosmetic:  when using video lines other than 25, the search status
  286.     message would update always on line 25.  This now moves with the
  287.     number of lines displayed.
  288.  
  289. o   When editing the message header, F4 may be used to select from a list
  290.     of available conferences.  This is useful when moving a message from
  291.     its source conference into another.  By request.
  292.  
  293. o   The master conference list now displays in alphabetical order by name.
  294.     Previously, conferences listed in the order they occured in the BBS's
  295.     configuration file.
  296.  
  297. o   NOW, there's a new INI parameter, "SortMasterConferences" which
  298.     defaults to NO (old-style non sorted list).  Specifying YES will
  299.     sort the master conference list alphabetically.
  300.  
  301. o   The "Z" key, used when viewing a message, now allows you to "Zip" to
  302.     the next "unread" message in a conference.
  303.  
  304. o   Threaded reading has been greatly enhanced.  First, a new INI
  305.     option must be set - "MessageOrder=Subject" (the default is "None").
  306.     This enables all sorts of new goodies :)  Basically, setting this to YES
  307.     will sort the messages by thread before reading begins.  Care was taken
  308.     to "clump" all "RE:" type messages in with their original non-RE'd
  309.     subjects.
  310.  
  311. o   If MessageOrder has been set to "Subject", some new keys are available.
  312.     While viewing messages, the TAB key will skip ahead to the next thread.
  313.     The BACKSPACE key will skip backwards to the previous thread.  Even
  314.     better, pressing "Q" will invoke the Quick Thread Summary screen.  This
  315.     list all threads in the conference, in alphabetical order, along with
  316.     the count of previously read messages vs. total message in the thread.
  317.     All threads that have been read completely are marked with an "*".
  318.     This is a full feature "selection" screen, so you can page around,
  319.     pick and peck at only the subjects that interest you.
  320.  
  321. o   I added another option - I'm not very happy with it, but you may find it
  322.     somewhat useful.  The INI parameter "ThreadChangeTone" accepts two
  323.     numeric parameters (e.g., "ThreadChangeTone=20000,10").  These parameters
  324.     are passed to the OS/2 kernel procedure DosBeep() and represent the
  325.     frequency and duration of the tone to make when you "page" into a "new"
  326.     thread.  The values 20000,10 make a quick "clicking" like sound that
  327.     isn't *too* anoying.  I'm open to ideas on this one ... :)
  328.  
  329. o   Default tagline file is now MISC2.TAG in an attempt to minimize
  330.     anti-Windows discussions in OS/2 related conferences.  OS2.TAG is still
  331.     in the distribution zip, you'll just have to set it yourself, if you
  332.     want it.
  333.  
  334. o   Minor bug: List Selection processing would exit a list if HOME was
  335.     pressed on the "first" page of records.  Now, user stays in the
  336.     selection list and the cursor moves to the first entry.
  337.  
  338. o   When Sorting by Subject, the 'H' and the 'B' keys used the old way
  339.     (searching forwards/backwards by subject) aren't that useful.  I've
  340.     changed their behaviour slightly in this case.  The 'H' key will move
  341.     forward a message, and if the "thread" changes, will display the
  342.     Quick Thread Summary screen.  The 'B' key will move backwards one
  343.     message pull up the summary screen if you move into a "new" thread.
  344.     NOTE that the selecting a thread from the summary screen moves you to
  345.     the *first* record in the thread, even if the 'B' key was previously
  346.     used.  There currently is no way to jump to the last message in a
  347.     thread.  Is this capability desirable?
  348.  
  349. o   The default for the setting of ExtendedAttributes is now YES.  If you
  350.     do not use the E editor, some minor speed increases may be achieved
  351.     simply by setting this to NO.  Note that this is only an issue with
  352.     users creating their INI file for the first time (existing INI's are
  353.     not affected by this change).
  354.  
  355.  
  356. Didn't get to twits and canned searches yet - Sorry!  I think the threading
  357. stuff will satisfy more of you, anyway :)
  358.  
  359.  
  360. Changes included in v1.2x
  361. -------------------------
  362.  
  363. o   Thread sorting/grouping would sometimes misplace a message because the
  364.     last character was chopped.  I've modified thread matching to check
  365.     24 characters instead of 25.  I can't see where this could be a problem.
  366.  
  367. o   Disabled many keys (Q, I, Tab, Backspace) while searching all conferences.
  368.     These weren't functional under searching-all conditions, and caused
  369.     strange things to happen when invoked.
  370.  
  371. o   Pre-defined searches have been added.  I did this for myself, but I'm
  372.     sure many will see the benefit.  Basically, you can build your own
  373.     conferences by defining search criteria.  All messages found to match
  374.     will he included in the defined conference.  The "MakeConference"
  375.     parameter is added in the MR2.INI file, or can be added into the BBS
  376.     specific INI file.  See the included file "Search.Ini" for an example.
  377.     You can have criteria listed in the MR2.INI *and* the BBS ini, and
  378.     they will be combined correctly.
  379.  
  380.     The following set of lines:
  381.  
  382.         MakeConference = MR/2
  383.         String = MR/2
  384.  
  385.     will result in MR/2 searching (in the background, multithreaded) all
  386.     message for the string "MR/2" and creating a custom "MR/2" conference
  387.     that will appear in the Conferences w/Mail menu.  Once the defined
  388.     custom conferences have been built, and you return to select a
  389.     conference, these new conferences will be listed.
  390.  
  391.     The number of search result conferences is "unlimitted" - at least in
  392.     a practical sense.  Memory is the issue, and valid file names.  I use
  393.     prefixes of A00 thru A99, up to Z99.  That's 2600 possible conferences.
  394.     If someone needs more, please let me know :)
  395.  
  396.     A single pass is made through the message base - for each message, all
  397.     combinations of search criteria are evaluated and the message is
  398.     recorded in any/all of the conferences it's found to belong to.  MR/2
  399.     will "beep" (low sounding tone) when it's done searching.  I'll INI-ize
  400.     this sound later.
  401.  
  402.     As another example:
  403.  
  404.         MakeConference = DR DEBUG/C/C++ & OS/2
  405.         Conferences=93,99,111
  406.         String = OS/2
  407.  
  408.     defines a conference that will display with a rather verbose name,
  409.     and will contain all message from conferences 93, 99 and 111 in which
  410.     "OS/2" was found.  A conference number of "*", or a missing conference
  411.     line will cause ALL conferences to be searched.
  412.  
  413.     This feature is particularly handy for me.  I'm a diehard CTOS fan, and
  414.     I code a commercial bar coding software package.  If these topics ever
  415.     appear anywhere, I'd like to know.  Since they rarely appear, I
  416.     rarely bother to search for them.  With a pre-defined search, these
  417.     words are always checked for, and I'll never(*) miss an occurence due
  418.     to laziness.  I can simply add the lines:
  419.  
  420.         MakeConference = Miscellaneous
  421.         Conferences=*
  422.         String = Barcode\Bar Code\CTOS
  423.  
  424. o   Other INI parameters have been added to compliment the new
  425.     MakeConference option. The parameter "ShowEmpties" controls whether
  426.     empty custom conferences are to be displayed with message counts of
  427.     "(0)".  If NO is specified, empty conferences do not appear at all
  428.     in the conference list.  "DisplayStatus" will show the message
  429.     search/hit counter on the bottom of the screen if set to YES.
  430.     "SeparaterBar" will place a line between the normal and custom
  431.     conferences if set to YES.
  432.  
  433. o   Fixed a bug in the logic that used to split long messages.  I messed
  434.     this up when I put in word wrapping - it wouldn't really split messages,
  435.     it simply put all lines in the first message and created an empty
  436.     "cont'd" message.
  437.  
  438. o   In testing the message splitting, I discovered that replies over 32K
  439.     in size weren't even registering.  This equates roughly to 800 lines of
  440.     message text.  The reply builder now accomodates messages up to
  441.     64K in length.  This is roughly 1600 lines of text, or 15-16 messages
  442.     "cont'd" from the first.
  443.  
  444. o   AND still while testing the message splitting logic, I found an even
  445.     bigger problem with replies.  If the reply file ever reached a total
  446.     size greater than 32K, replies would be ignored.  This had to do with
  447.     using an integer to hold the file size, and having it overflow.  It now
  448.     uses a long value and will function correctly.  I'm suprised no one
  449.     caught this - or maybe they did and didn't report it.
  450.  
  451. o   Conferences for which MR/2 was left to build NDX files for could not
  452.     be searched due to a problem with the way the searching functions
  453.     used the internal NDX files.  This became apparent when I tried to
  454.     search through the new custom conferences.  This has all been corrected.
  455.  
  456. o   Removed the annoying beeps when selecting from a list and you hit the
  457.     uparrow or downarrow too many times.
  458.  
  459. o   Converted all thread code to use _beginthread/_endthread.  Previously,
  460.     I was using DosCreateThread and mixing in some C runtime library
  461.     calls.  While this seemed to work OK, I figured I'd play it safe and
  462.     convert, especially considering the strange trouble some folks are
  463.     having (although I'd like to blame the E editor :).
  464.  
  465. o   Modified tons of code to support 4 digit numbers for index file.  Most
  466.     BBS's carry under 1000 conferences, but some (Channel 1 in particular)
  467.     boast over 1000 and have NDX files like "1654.NDX".  All old code was
  468.     geared to fixed 3-digit numbers.
  469.  
  470.     A benefit (?) of this is that custom "made" conferences now are numbered
  471.     A0000-Z9999, which gives us more breathing room (as if 2600 custom
  472.     conferences weren't enough :)  Now you (theoretically) have up to 26000.
  473.  
  474.     EditHeader now functions just a little differently when specifying a
  475.     conference number.
  476.  
  477. o   On Custom-made conferences, by default the search string is found in
  478.     all conference messages and aligned as if a search was performed.  If
  479.     you wish to suppress this action, set the INI file parameter
  480.     "PositionOnMatchLine" to NO.
  481.  
  482. o   When "Replies exist, keep?" is denied, the .rep file is now actually
  483.     renamed to a .old file.  I've had happy fingers too often and lost
  484.     reply(s).  This is not optional and is automatic - I'll add an INI
  485.     parameter to control it later.
  486.  
  487. o   Split out all pre-1.0 data from this file into oldread.me.  I'll
  488.     reorganize the whole thing later - probably with version 2.0.
  489.  
  490. o   Mouse cursor would not hide properly when placed past line 25 (in
  491.     non-standard video modes).  Cursor would cause streaking and generally
  492.     misbehave.  This has been fixed.
  493.  
  494.  
  495. Changes included in v1.3
  496. ------------------------
  497.  
  498. o   Scroll bars are now integrated into DLSelect (the selection list
  499.     routines).  You can use the mouse to scroll through lists.  I've also
  500.     made clicking on the divider line directly above the first entry to mean
  501.     "page up".  Clicking on the bottom line of any selection list box
  502.     means "page down".
  503.  
  504.     The scrolling routines need some work - mostly cosmetic.  One annoying
  505.     problem is the lack of a mouse repeat when holding the LMB down.  I'm
  506.     not sure why I don't get this - I'll have to fiddle with ZTC's low
  507.     level event handling functions again :(.  (In other words, holding the
  508.     mouse down on the up or down arrows only registers once per click -
  509.     if you hold it for half and hour but only "click" once, the display
  510.     moves only one line.)
  511.  
  512. o   I've used ZTC's event "timer" to get a mouse repeat.  Works pretty well.
  513.     Now to test it against time :)
  514.  
  515. o   Selection lists now allow for "jumping" to a letter prefix.  For example,
  516.     while viewing the Master Conference list, pressing "O" will jump to
  517.     the NEXT conference that starts with an "O".  Immediately pressing "S"
  518.     will jump to the next conference that starts with "OS".  Pressing
  519.     any non-printable key (e.g., up arrow) will reset the prefix string to
  520.     nothing.  Prefix search starts at the current cursor position and works
  521.     forward only.
  522.  
  523. o   The thread sort, which I thought to be "static", turned out to be pretty
  524.     votatile.  This was pretty obvious, I just didn't connect with what was
  525.     happenning.  I've fixed it so that identical subjects are sub-sorted by
  526.     message number.  This ought to keep everything in "order" within each
  527.     thread.
  528.  
  529. o   Line wrapping for replies has been fixed to "trim" leading spaces from
  530.     next line.  Previously, if a line wrapped so as to end with more than
  531.     one space before the next line's word, these extra spaces would be
  532.     left in front of the line.  This has been corrected.
  533.  
  534. o   Clock: And another ZTC bug wiped out.  Zortech's strftime function
  535.     messed up the %I parameter for hours in 01->12 format.  The display
  536.     would progress from 11:59 to 01:00 at midnight.  Wrong!  I've
  537.     corrected this and all clock displays seem to now work correctly.
  538.  
  539. o   If using PCBoard style taglines, I now use three dashes instead of
  540.     underlines for the tearline.  If Fido mode, underlines are used.
  541.     We'll see if this makes everybody happy.
  542.  
  543. o   I've included two icons with the distribution zip: mr2.ico and
  544.     email.ico.  MR2.ico is a Nick Knight original and I'm not very proud
  545.     of it :(.  Maybe I'll play with it some more and purty it up.  EMAIL
  546.     is a modified ICON I scarfed and looks IMO nicer.  Maybe I'll add
  547.     some more possibilities ...
  548.  
  549. o   If all replies from an "existing" reply file were killed the
  550.     original reply file was not deleted.  MR/2 counted zero replies, so
  551.     it figured there was nothing to do, and any old file remained
  552.     untouched.  Now, I rename the old .rep file to a .old file.
  553.  
  554. o   The 'V' key, while viewing a message, has always been there to change
  555.     video modes while reading any message.  I never documented this because
  556.     of various bugs.  Well, someone discovered it and reported the bugs,
  557.     which I now believe to be fixed.  'V' will now toggle through the
  558.     video modes (number of lines) while viewing any message.
  559.  
  560. o   To remain fairly keystroke compatible w/SLMR, I've made Ctrl-PgUp and
  561.     Ctrl-PgDn translate to Tab and Backspace, respectively.  This is during
  562.     message reading only; these keys perform next-thread, previous thread
  563.     functions.
  564.  
  565. o   Fixed a bug with the resetting of the original video mode upon exit.
  566.     Also, added the ability to specify ANY video line mode in the INI file.
  567.     This line count gets added to the video toggle round robin loop.
  568.     If you specify a video mode of 52, MR/2 loads this way (no error
  569.     checking is done - you'll stay in 25 line mode if 52 is invalid).
  570.     If you keep pressing ALT-V on packet select, you'll cycle through 25,
  571.     then 28, through 60 line mode.  After 60 line mode, you'll toggle back
  572.     to 52, then 25 again.  Get it?
  573.  
  574. o   Also, I "fixed" it so that if no VideoMode is specified in the INI file,
  575.     MR/2 defaults to whatever the current Video Mode is.
  576.  
  577. o   Default Word Wrap column for replies is now 80 (was 78).  I'm testing
  578.     this to see if quote-wrapping problems diminish while message-wrapping
  579.     problems remain in check.  If you specify a value in your INI file,
  580.     this change is irrelevant.
  581.  
  582. o   OldRead.Me (pre-1.0 history log) has been renamed to mr2.hst.  I'll
  583.     shuffle off older entries from read.me into this file as they become
  584.     kinda old.
  585.  
  586. o   Fixed some bugs with the "To" field getting confused when EditReply
  587.     Header was set only to AFTER.
  588.  
  589. o   Reformatted the Quick Thread Summary screen so that all subjects line
  590.     up, even if the read/message counst go to 2 digits.  This was also
  591.     necessary so that typing letter keys properly jump to the correct
  592.     spot.
  593.  
  594. o   3 New INI parameters.  BeepOnPersonals defaults to Yes and controls the
  595.     beep that is made when personal messages are displayed.  GoToLastRead
  596.     defaults to No.  If set to Yes, the "do you wish to return to your last
  597.     reading position" is suppressed and MR/2 just goes there automatically.
  598.     BackupOldReps defaults to true and controls the renaming of .rep files
  599.     to .old files instead of deleting them.
  600.  
  601. o   Another new parameter, by request.  You may optionally specify an
  602.     alternate editor command for use when creating NEW messages.  The
  603.     INI token NewMessageEditor may be set just as the Editor parameter is,
  604.     and this command will be used whenever writing a new message.  This
  605.     allows for differing startup macros.  The "new" editor is used for
  606.     ALL non-reply editing (including MR2.INI, News, Files, Bulletins,
  607.     Save files, etc).  If a "new message" editor is not specified, the
  608.     default Editor command is used for everything.
  609.  
  610. o   Modified the message formatter to tack on [M][][] to the end of the
  611.     "===" divider bar.  These are new mouse click areas.  The arrows cause
  612.     scrolling down and up.  Clicking on the M invokes the new "mouse menu".
  613.  
  614.     NOTE:  I was also going to assign the mouse menu to the middle mouse
  615.     button, if available, however, my middle mouse button doesn't seem to
  616.     function even after tweaking the MouSetEventMask parameters. Hmmm...
  617.  
  618. o   The new mouse menu can be displayed and used for keystroke simulation
  619.     while viewing a message.  Click in the new [M] box, and the mouse
  620.     menu is displayed offering 16 options.  Click on any of these options
  621.     to invoke that function or use the right mouse button to cancel.
  622.  
  623.     The older mouse hot areas are still functional.  For instance,
  624.     clicking on the message SUBJECT area simulates pressing "H" and
  625.     clicking on the CONF: area simulates an I.
  626.  
  627. o   I've also implemented double-clicking on selection lists.  This is
  628.     currently a must-do; the old method of single clicking simply
  629.     highlights the entry.  You must double click to select it.  I may let
  630.     you pick which method to use (single or double-clicking) via INI param.
  631.  
  632. o   If a packet is already open and you answer NO to the "use this one"
  633.     prompt, MR/2 now deletes MESSAGES.DAT.  Previously, the work directory
  634.     files remained undeleted until a packet was selected.  This caused
  635.     the "use this one" prompt to come up after any other function.  For
  636.     instance, each time the video mode was toggled, you'd have to answer
  637.     this prompt again.  Not any more!
  638.  
  639. o   I've changed the status line on the bottom of the packet select menu
  640.     and added a "mouse menu" on the right hand side.  Single click on a
  641.     packet name and then click on "[D]" to delete this packet.
  642.  
  643. o   If you used "X" to fast-exit MR/2 and a BBS "local" INI file was in
  644.     use, I still reloaded MR2.INI.  This step is now skipped resulting
  645.     in slightly faster exit speeds.
  646.  
  647. o   New INI parameters:  MouseMode=Single sets the mouse "click" mode to
  648.     Single or Double.  The NEW default is double clicking.  For those of
  649.     you who liked it the old way, set the mode to SINGLE.
  650.  
  651.     Also, MouseClickSpeed can be set to the maximum number of milliseconds
  652.     allowable between mouse clicks to still be considered a double-click.
  653.     The default is still being figured out - it'll be somewhere between
  654.     40 and 500.   OK, it's 500 :)
  655.  
  656.     AND ... MouseScrollSpeed sets the delay for scrolling when you park the
  657.     mouse with the left button down on a scrollbar arrow.  The default is
  658.     set to 1.  If this is too fast for you, change it to a higher value.
  659.  
  660. o   Made the same "out of bounds clicks are just ignored" change to the
  661.     menu routines.  Clicking out-of-bounds on the main menu canceled still.
  662.  
  663. o   Had to fix a timer to simulate mouse clicks for scrolling the message
  664.     viewer when parked on the mouse scroll arrows.
  665.  
  666. o   I've added a new canned-search parameter, "CHECK".  This enables you to
  667.     check for text in any combination of From, To, Subject and Message.
  668.     Message may be further sub-divided into Body and Origin.  I consider
  669.     the "origin" section to be anything after and including the first
  670.     "tear" line.  For Example:
  671.  
  672.     MakeConference = MR/2 - Tagline
  673.     Check = Origin
  674.     String = MR/2
  675.  
  676.     will check only the message section, and only below the first "---" or
  677.     "___" found in the message.  Further:
  678.     
  679.     MakeConference = MR/2 - No Taglines
  680.     Check = Subject,Body
  681.     String = MR/2
  682.  
  683.     will check message up to the first tearline, and will also check subject.
  684.     No sense in this case checking From and To, although I could have added
  685.     this.  You can find all message from Jim Gilliland this way and build
  686.     a conference of them.
  687.  
  688.     NOTE:  The message viewer will align the display on the first hit
  689.     in the message.  It will NOT ignore the body if the search was defined
  690.     as ORIGIN only.
  691.  
  692.     Leaving the CHECK string out will result in ALL areas being checked.
  693.  
  694.     This code was partially implemented before, I just had to add the INI
  695.     parameters and the origin splitting.
  696.  
  697.     This will be the base code for my twit filters - a little tweaking
  698.     and you'll be able to twit any message combination for which you can
  699.     build a custom conference.
  700.  
  701. o   Optimized the message section searching a little.  It *was*
  702.     converting the message to upper case for each search criteria
  703.     record, even though the first check had already converted it.  Now
  704.     it only converts the message on the first check, and only if the
  705.     message body is to be checked.
  706.  
  707. o   You can now forward the message you are reading to another user
  708.     and/or conference.  Simply press "W" (SLMR-compatible key) and the
  709.     Message Header Edit screen will appear.  Fill out the To field and
  710.     change anything else as needed.  Accepting this form will create
  711.     a forwarded copy of this message in the reply conference.
  712.  
  713.     NOTE:  MR/2's tagline does not appear in these messages UNLESS you
  714.     modify it later.  Making revisions toa forwarded message will cause
  715.     MR/2 to place/replace its tagline on the message.
  716.  
  717. o   When modifying a reply, MR/2 now extracts and reuses the original
  718.     tagline.  Previously, a new tagline would be automatically picked to
  719.     replace the original.
  720.  
  721. o   Modified the packet open logic to use an insert sort when creating the
  722.     list of Master Conferences.  Sorting after-the-fact was very slow.
  723.     PC-Ohio packets (w/600 conferences) load much faster now.
  724.  
  725. o   I tried setting the background conference builder to IDLE priority and
  726.     it would not work properly with PMInfo loaded.  Changed it back to
  727.     regular priority with a -30 delta.
  728.  
  729. o   I've implemented some basic "ANSI animation" code in the message viewer.
  730.     Press "A" while viewing any message with ANSI escape sequences and
  731.     see if it works.  Scrolling of the screen is hokey - I'll work on it
  732.     some more.  Some screens look OK, though :)
  733.  
  734. o   Ooops - big bug.  If Control.Dat was > 32k MR/2 would fail to read the
  735.     master conference list, and no mail could be read.  This limit is
  736.     now 64k, and I can easily just remove any limit with the next release.
  737.     The sample packet I was presented with had 2500 conferences available
  738.     and Control.dat was around 40K.
  739.  
  740. o   A "Working" message now displays while a packet is being opened by MR/2.
  741.     There was a substantial pause on packets with 600 conferences, and a
  742.     couple of seconds pause on the 2500 conference packet above.  It appears
  743.     that there's trouble (as all is quiet), and then the main menu pops up!
  744.  
  745. o   Trimmed the end of replies a little.  It was possible to get an extra
  746.     blank block (128 spaces) at the end of the message.
  747.  
  748.  
  749. Changes included in v1.31
  750. -------------------------
  751.  
  752. o   Modified the packet select clock display to show centered on the screen.
  753.     It was centered for short month names, but September (it *is* the longest
  754.     name) made it look lopsided.
  755.  
  756. o   ANSI animation is much improved ... I've still got some work to do.
  757.     Some of these ANSI messages are incredible!  Toggle MR/2 into 34 line
  758.     or greater mode to read stubborn messages.
  759.  
  760. o   OK, I've enabled "ANSI detect" for News, Bulletins and New Files.
  761.     Actually, if I would have enabled it, this would have worked well in
  762.     version 1.3.  Unfortunately, I only tested it with message reading, and
  763.     it didn't make any sense for these - if a message had ANSI codes, it
  764.     was a good bet it wanted full control of the screen, which I didn't
  765.     want to give unless requested by the user (the "A" key).  Now I find,
  766.     after sampling several BBS's (Wildcat's were suggested, then I find that
  767.     PCBoards with Graphics menus enabled sends ANSI codes also :), that
  768.     the non-message ANSI stuff tends to be much more behaved.  Anyway, test
  769.     it out, let me know of any problems.
  770.  
  771. o   For ANSI animations, had to enable the "blinking" attribute.  I then
  772.     set it back off for regular operations.
  773.  
  774.  
  775. Changes included in v1.32
  776. -------------------------
  777.  
  778. o   Blinking attribute still didn't work in the message/file viewer.  News
  779.     files with blinking text showed reverse video in some starnge color.
  780.  
  781. o   Custom conference search was still started on message entry w/o any
  782.     existing packets (ALT-E from the packet select screen).  There are
  783.     no message to search in this mode, but the thread was started and the
  784.     beep would occur almost instantly.  This has been fixed.
  785.  
  786. o   Modified the "ShowEmpties" default flag from YES to NO.  Set it to
  787.     YES in your INI file if you want empty custom conferences to show.
  788.  
  789. o   KeepMessageMarks would sometimes get corrupted and set to NO.  This
  790.     was caused by an error in the INI.CPP code that "dropped" into the
  791.     "K" parameter processing after doing the "H" processing (missing
  792.     break statement).  For some reason, the corruption was more sensitive
  793.     to opening a packet using WPS "associations" that direct MR/2 selection.
  794.  
  795. o   But then, there was still a problem with using WPS associations to
  796.     open a packet.  Problem also occured whenever simply passing a file
  797.     name on the command line.  MR/2 tried to save Bookmark EA's, but used
  798.     an invalid file name.  This is now working correctly.
  799.  
  800. o   Added NEWMR2.ICO to the distribution zip.  This is an MR/2 icon
  801.     submitted by Dennis Powell.  He claims it's better looking than mine,
  802.     and I guess I'll have to agree :).
  803.  
  804. o   The ANSI file viewers would clear the screen to the user-defined message
  805.     color before showing the file/screen.  This resulted in the "wrong"
  806.     background color.  I now clear the screen to black before showing text
  807.     using ANSI escape sequences.
  808.  
  809. o   Also, MR/2 left all ANSI display routines with the default screen colors
  810.     set to whatever the ANSI display last set.  I now set normal white on
  811.     black upon exiting these functions.
  812.  
  813. o   I made some changes to try to speed up the scrolling of selection lists.
  814.     The mods where to the video display routines, but seemed to do nothing.
  815.     I don't really see any slowness, unless I stand on the downarrow key.
  816.     These may be more a case of slow keyboard repeat.  I'll see if I can
  817.     modify this somehow.
  818.  
  819. o   When you change the FROM user when editing the reply header, the new
  820.     "from" name is remembered and becomes the default for as long as that
  821.     packet is open.  Once the packet is closed, the user name defaults
  822.     back to the one found in the control.dat file of each QWK file.
  823.  
  824. o   I removed survey.txt from the distribution zip.  I think I know what
  825.     the majority of folks want, and the zip file needs to be pruned a little.
  826.     Also removed Misc1.Tag, leaving Misc2.Tag and OS2.Tag.  These may get
  827.     trimmed or disappear altogether at some time ...
  828.  
  829. o   Also removed MR2.DOC from Welcome.qwk, the default, "I'm lost" new-user
  830.     packet.  I've replaced it with a small note about seeing mr2.doc as
  831.     a separate file.  This file was actually packed twice, now only once.
  832.  
  833. That's it for now ... I'll work on adding some actual enhancements as soon
  834. as I get MR/PM out and somewhat stable ... that'll probably take a week,
  835. or two, or three.  Look for MRPM_095.*
  836.  
  837.  
  838. Changes included in v1.33
  839. -------------------------
  840.  
  841. o   Forwarding messages had a problem with taglines.  The forwarded preface
  842.     was placed in the edit-header tagline field and could get corrupted.
  843.     Forwarded messages get no tagline; this field now displays blank and
  844.     any entry here is ignored.
  845.  
  846. o   On some messages, lines would be highlighted as quotes that were
  847.     obviously not.  This was from ghost characters from previous lines and
  848.     has been fixed.
  849.  
  850. o   Fixed a problem with the MR2.ID recognition routine.  Basically, if
  851.     any of my checksums calculated to a CR or a EOF (0x1A), the file would
  852.     not be recognized as valid.  This has been fixed.
  853.  
  854. o   If a zero length reply file was for some reason saved, then reedited,
  855.     MR/2 would throw a second tagline on the file.  Fixed.  I wonder if I
  856.     can reasonably detect the cases where the reply has been saved w/o
  857.     any user-added modifications and warn??
  858.  
  859. o   In the INI file, MouseMode now supports the keyword "Off" in addition
  860.     to SingleClick and DoubleClick.  All "Off" does is tells MR/2 to hide
  861.     the mouse cursor (the mouse is still active, just hidden).  ... by
  862.     registered user request.
  863.  
  864. o   New INI parameter SuppressVersionInTagline defaults to NO.  If
  865.     you're a registered user, you may set this to YES and the version
  866.     number(s) will be suppressed when MR/2 generates a tagline.  This
  867.     allows more room for your tagline message, particularly when used in
  868.     conjunction with "SerialInTag" set to NO.
  869.  
  870.  
  871. Changes included in v1.34
  872. -------------------------
  873.  
  874. o   The custom conference search "check" keyword ORIGIN has been modified
  875.     to recognize a lines starting as " * " as the "origin".  Also sees the
  876.     line as the start of the origin area if the "*" is instead an "X" or a
  877.     ASCII block char (0xFE).
  878.  
  879. o   The 1.33 tagline modifications to suppress the VERSION string worked OK,
  880.     but the new code messed up the non-suppressed version string for
  881.     registered users.  This has been fixed.
  882.  
  883. o   Added PMColors to the INI file processor.  This adds nothing to MR/2
  884.     classic - this is for the PM version :(.
  885.  
  886. o   Removed the file Read.Me from the Welcome.Qwk default packet.  This
  887.     was just a duplication of the file read.me that's distributed
  888.     separately.  Duplicating the file just made distribution zip's larger
  889.     and made extra work for me when packing up new versions.  Now, all
  890.     that's in the .qwk packet is instructions to read the read.me file.
  891.  
  892.  
  893. Changes included in v1.35
  894. -------------------------
  895.  
  896. o   Another control.dat problem was found pertaining to a specific BBS
  897.     (or BBS software/mail door?).  A registered user sent me a packet where
  898.     control.dat had the user name padded to about 40 characters max.  This
  899.     overwrote some internal variables (specifically, the BBSID) and the
  900.     system tried to create replies in a file named "       .msg".  This
  901.     is not legal and MR/2 would puke.  Since this has now caused trouble
  902.     twice, I've rewritten the routine to handle virtually any length of
  903.     user name.
  904.  
  905.  
  906. Changes included in v1.36
  907. -------------------------
  908.  
  909. o   Beeping on personal messages did not always work.  The comparing of
  910.     names was case sensitive, and worked only if the message name and the
  911.     user name in control.dat matched EXACTLY.  This has been corrected.
  912.  
  913. o    Modified the tagline "random" seeding in an attempt to make things more
  914.     "random".  Someone reported that the same taglines were coming up even
  915.     when set to RANDOM.  I could not recreate this, but an examination of my
  916.     code revealed that there were only 60 possible seeding combinations.
  917.     (I used time(NULL)%60).  I've changed this to offer a broader range of
  918.     starting seeds.
  919.  
  920. o   Tagline style now defaults to PC-Board.  This is 3 dashed as a tearline
  921.     and hi-end ASCII block characters as MR/2's signiture delimiters.  I
  922.     also added the keyword "TagStyle" to MR2INI.ORG.  It's been there for
  923.     a while, but I missed it when documenting and setting up this starter
  924.     INI file.
  925.  
  926. o   Fixed a thread-name formatting problem in the quick thread summary
  927.     logic (originally fixed in MR/2 PM).  The very last thread name would
  928.     sometimes be blank or some initial characters missing due to a previous
  929.     "RE:" being detected.  This has been fixed.
  930.  
  931. o   Modified the conference "sort" (when Alpha-sorted master conference
  932.     names are requested <the default>).  Previously, conference names
  933.     where inserted into the final linked list used by the QWK class in
  934.     insertion-sorted order.  In other words, I'd plow through the linked
  935.     list and find the right spot for a conference name and plop it
  936.     there. This was extremely slow for large lists.  Now, names are
  937.     recorded (sorted) in a BTREE structure, then transfered into
  938.     linked-list format. The increase in speed (using PC-Ohio's 1000+ and
  939.     Channel 1's 2200+ conference lists as tests) is dramatic.  I'm
  940.     happy, I hope you are too.
  941.  
  942.  
  943. Changes included in v1.37
  944. -------------------------
  945.  
  946. o   The selection box logic had some problems when working in modes
  947.     with a large number of display lines (e.g., 60 line mode).  Pressing
  948.     enter on the 32nd listed entry or beyond was treated by MR/2 as being
  949.     a letter-character command and the "ENTER" would be ignored.  This has
  950.     been fixed.
  951.  
  952. o   Added a new member of zEq, the event class.   The event function
  953.     rehidemouse() can be used after a video mode change.  If the mouse
  954.     flag says it should be hidden, MouRemovePtr() is called with the
  955.     current screen size.  If the mouse flag says the mouse is *not*
  956.     hidden, nothing is done.
  957.  
  958. o   The changing of video modes (number of display lines) caused the mouse
  959.     cursor to sometimes become visible when it shouldn't.  This has been
  960.     corrected.  Also, if MouseMode was set to OFF and you replied to any
  961.     message, the mouse would appear upon return from the editor (the mouse
  962.     flag was reset to "show" upon return).  This has been fixed.
  963.  
  964. o   In an early and primitive attempt to support long file names, I've
  965.     switched to the linker distributed with the MS v1.2 toolkit.  It seems
  966.     blink (Zortech's linker) doesn't like the LONGNAMES keyword in the
  967.     .def file.  Hopefully, nothing strange will happen :)
  968.  
  969.  
  970. Changes included in v1.38
  971. -------------------------
  972.  
  973. o   If EditHeader was set to AFTER only and an existing reply was modified,
  974.     "your" name would appear in the TO field as well as the FROM field.
  975.     This was the result of a 9/2/92 patch for AFTER mode, but the patch
  976.     should not effect editing of replies.  Fixed.
  977.  
  978. o   While working in Header Editing "AFTER" mode I also discovered that
  979.     the subject of a "Write new" message was often filled in with the
  980.     last read  message's subject.  Subjects are now blanked out when
  981.     writing a "new"  message.
  982.  
  983. o   Write new: conference numbers > 1000 would only show last 3 digits.
  984.     Display now is widened by one and 4 digit conference numbers displayed.
  985.  
  986. o   Conference select when editing the message header has been expanded
  987.     in width by one character to match Write new conference select.
  988.  
  989. o   My testing of BBS's with 4 digit conference support failed to find one
  990.     possibility.  It was reported that, at least once, some QWK door produced
  991.     4-digit index files for conference numbers < 1000.  For instance,
  992.     conference 1 would be indexed by 0001.ndx.  "Normal" doors seem to use
  993.     3 digits *until* the conference number grows to 1000 or more.  MR/2 now
  994.     supports and auto-detects both types.
  995.  
  996. o   Enhanced the tagline stealer to recognize taglines made by the BlueWave
  997.     mail reader.  Added recognition for Speed Reader's method, also.
  998.  
  999. o   A packet was provided to me that had strange, extremelly long conference
  1000.     names; actually conference names followed by comment-like descriptions.
  1001.     These long names were causing strange screen-wrapping problems.  I've
  1002.     now got a 60-char maximum box width set for conference names.  Names
  1003.     longer that this will be truncated ... they won't look pretty, but they'll
  1004.     look better than what I just saw :)
  1005.  
  1006. o   My new/faster btree sorting method would toss out duplicate
  1007.     conference names.  This wouldn't normally be a problem, but OS/2
  1008.     Shareware's QWK door truncates all Usenet news feed names to
  1009.     "Comp.Os.Os2.". Versions using the old sort method (or new ones with
  1010.     Alpha sorting OFF) would show multiple conferences all with the same
  1011.     name.  New version show the conference only once, if at all.
  1012.     Collisions (duplicate names) are now handles as unique records and
  1013.     added - so all conferences show up. They're still named the same.
  1014.     I've netmailed OS/2 Shareware with a description of the problem.
  1015.  
  1016. o   Conference name boxes on "Write new" and header-editing selection now
  1017.     adjust their width to accomodate long conference names.  (Kind of a
  1018.     continuation of the fix above).
  1019.  
  1020. o   I've been making alot of minor changes and improvements and haven't
  1021.     been too careful about remembering them.  Let's see, I found a minor
  1022.     bug with adding replies.  Every time you replied, a 30 byte chunk of
  1023.     memory was allocated for the conference listing, and any older conference
  1024.     record was never freed.  You'd have to make quite a few replies before
  1025.     this would create a problem - but it's fixed anyway.  The "Read" indicator
  1026.     on the message index and quick thread summary has been changed from
  1027.     "*" to "√".  I think it looks nicer.
  1028.  
  1029. o   Tagline stealer can now steal wider taglines - 76 chars in length max.
  1030.  
  1031. o   Added some code to detect "&" symbol in BBS name.  This was causing
  1032.     the OS/2 CMD.EXE to do strange things when passed to PKZip and PKUnzip.
  1033.     MR/2 now wraps all BBSID-based names that contain a "&" in quotes.
  1034.  
  1035.  
  1036. Changes included in v1.39x - BETA
  1037. ---------------------------------
  1038.  
  1039. Folks:  I'm calling the next few versions "beta-level" releases.  Most of
  1040. my releases are anyway <g>, but the next couple of cuts are going to have
  1041. many new functions and lots of rewritten sections.  Most of these are
  1042. scheduled for version 2.0, but I'm thinking that I'll release them in
  1043. steps instead of holding back (i.e., 1.4, 1.5 ... 2.0).  Stick with v1.38
  1044. if your craving for adventure is low :)
  1045.  
  1046. o   INTERNAL: Renamed RemoveKilledReplies() to RemoveKilledMessages().  This
  1047.     function will be used to later pack message "folders" and the new name
  1048.     better reflects its more generic purpose.
  1049.  
  1050. o   INTERNAL: Added folderfh to QWK class and modified all message access
  1051.     routines to check the freadingfolder flag.
  1052.  
  1053. o   INTERNAL: new routine fix_path() in INI.cpp.  ReplyPath and PacketPath
  1054.     now pass through this call, as well as FolderPath.
  1055.  
  1056. o   INTERNAL: Massively modified Inbasket/Folder logic - I didn't like
  1057.     the way it was working.
  1058.  
  1059. o   Packing of replies has been reworked.  Previously, all replies were
  1060.     copied to a temporary file, with killed replies being filtered out.
  1061.     Then, the reply file was deleted and the temporary file renamed to
  1062.     the reply file name.  Now the reply file is packed "in place".  This
  1063.     is faster, does not require a temporary file AND has been made generic
  1064.     to allow for future use with folders.
  1065.  
  1066. o   Mouse is now semi-function on "form" type entry screens.  Functional
  1067.     as far as clicking on any informational "keystroke" bar will simulate
  1068.     that keypress.  For example, when saving a message, clicking on "pick
  1069.     from list" will simulate an F2 keypress.  This was probably more coding
  1070.     than it was worth, but it works :)  Tagline stealing, save file select
  1071.     and reply header editing were effected.
  1072.  
  1073. o   Added an " ENTER = ESCAPE " key bar to save file name entry to aid in
  1074.     mouse use.
  1075.  
  1076. o   New TagStyle value has been added.  If the INI file contains the line
  1077.     "TagStyle=TwoLine", then a tagline in the form of:
  1078.  
  1079.     .. your funny tagline here
  1080.     -- MR/2 v1.38 NR
  1081.  
  1082.     will be produced.  Originally, I called this the "BlueWave" style, but
  1083.     something didn't sit well with me, so I changed it to "TwoLine" :).
  1084.  
  1085. o   You can now "Defer" any message to a QWK save area independant of the
  1086.     current packet for later processing.  This will create an "InBasket"
  1087.     conference which will contain all messages for the current BBS that
  1088.     have been deferred and never manually deleted.  This allows for you
  1089.     to reply to the message later, when time permits, without having to
  1090.     keep the entire packet around, trying to remember why, and which
  1091.     message it was.   Press "D" or "/" while viewing the message you
  1092.     want to defer.
  1093.  
  1094.       *** THIS IS BETA-LEVEL CODE - USE WITH CARE  ***
  1095.  
  1096.     ALSO: Inbasket code is subject to change ... read the next version's
  1097.     read.me file to make sure inbasket messages saved with this version
  1098.     will work with the new.  You may have to "clean up" old inbasket
  1099.     message with the old (this) version MR/2.
  1100.  
  1101. o   Added FolderPath as an INI param.  This is where folder directories
  1102.     will be created.  The default is "..\", so that subdirectories off of
  1103.     the MR/2 "home" directory will be created.
  1104.  
  1105. o   ALT-E can now be used to enter NEW messages for any known BBS even
  1106.     when the "no packets found" dialog box is displayed.  I thought I'd
  1107.     done this before, but it wasn't working.  Now it does :)
  1108.  
  1109. o   Forced REPLYLOG variable to NO - this wasn't finished and I'd
  1110.     inadvertently documented it in the default INI file.  It did very
  1111.     strange things.  I'll try to finish this off soon so it works the
  1112.     way it's supposed to.  Sorry?
  1113.  
  1114. o   The internal editor is now functional.  Simply set the Editor
  1115.     specification in your INI file to "INTERNAL".  The editor is fairly
  1116.     simple; press HELP (F1) for a summary of available keys.
  1117.  
  1118.     NOTE:  This is also beta-level code.  Expect bugs, but the basic
  1119.     editor works OK.  Single window, no import/export text functions, yet.
  1120.     ALSO!!! Set your word-wrap margins in MR2.INI to *76 or greater* for
  1121.     the best results.  Smaller numbers work fine, except previous "quoted"
  1122.     sections get mangled (at least you can now see this *while editing*
  1123.     the message, though :).
  1124.  
  1125.     The editor is wide open for ideas.  I *still* don't want to spend alot
  1126.     of time writing editor code, but if an idea makes sense, I'll think
  1127.     about it.  TELL ME ABOUT YOUR PROBLEMS AND OFFER SUGGESTIONS, PLEASE.
  1128.  
  1129.  
  1130.